package extra;

import static java.lang.Math.log;

public class Gerador {

	private static int identificador = 0;
	private static Randomico aleatorio = new Randomico();

	public static int geraIdentificador() {
		return Gerador.identificador++; 
	}
	
	public static double geraNumeroReal() {
		return Gerador.aleatorio.rand();
	}

	public static double geraAmostraExponencial(double a) {
		return (-(log(Gerador.geraNumeroReal()) / (1 / a)));
	}

	public static int geraAmostraGeometrica(double p) {
		int numeroGerado = (int) ((log(Gerador.geraNumeroReal()) / log(1 - p)) + 0.5);
		while (numeroGerado == 0) {
			numeroGerado = (int) ((log(Gerador.geraNumeroReal()) / log(1 - p)) + 0.5);
		}
		return numeroGerado;
	}

	public void setSemente(long semente) {
		aleatorio.setSemente(semente);
	}
}
